package com.zxwl.base.dao;

import java.util.List;
import java.util.Map;

import org.springframework.orm.hibernate3.HibernateTemplate;

public interface IProcedure<T> 
{
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate);
	/***
	 * 执行存储返回实体列表
	 * @param procedureName 存储过程名称
	 * @param procParams    入参
	 * @param outParams     出参
	 * @return              查询结果
	 * 注意被调用的存储过程必须返回游标参数
	 */
	public List<T> queryList(String procedureName, QueryParameter queryParameter);
	/**
	 * 执行存储过程不返回结果集
	 * @param procedureName 存储过程名称
	 * @param procParams    入参
	 * @param outParams     出参
	 */
	public void execute(String procedureName, QueryParameter queryParameter);
	
	/**
	 * 执行存储过程返回记录
	 * @param procedureName
	 * @param procParams
	 * @param outParams
	 * @return
	 */
	public List<Map<String,String>> queryMapList(String procedureName, QueryParameter queryParameter);
}
